/*
 * Cliente.h
 *
 *  Created on: Nov 6, 2012
 *      Author: lucas
 */

#ifndef CLIENTE_H_
#define CLIENTE_H_
#include <string>
#include <list>
#include "ClientSocket.h"
#include "GtkThread.h"
class Game;
class GameProxy;
class AbstractGame;
class GameID;
class GameInfo;
class GtkThread;
class Cliente {
private:
	ClientSocket csck;
	bool connected;
	AbstractGame* game;
	GtkThread gtkThread;

public:
	Cliente();
	virtual ~Cliente();
	bool connect(std::string& ip, int puerto);
	std::list<GameInfo> getMultiplayerGames(); // ver bien que devuelvo
	Game* createSinglePlayerGame(); //Parametros: World, Level?
	GameProxy* createMultiplayerGame(); //Parametros: World, Level?
	GameProxy* joinMultiplayerGame(GameID);
	void send(std::string& msg);
	std::string recv();
	void requestFile(std::string filename);

};

#endif /* CLIENTE_H_ */
